package ishitong.vehicleManagement.dao;

import ishitong.vehicleManagement.model.ImportantVehicle;
import com.ishitong.platform.common.dao.GenericDao;
import com.ishitong.platform.common.page.Page;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Repository;
import ishitong.vehicleManagement.model.ImportantVehicleQuery;
import java.util.List;
import java.util.ArrayList;

/** @pdOid 5e1fd69d-f6de-4b7c-97f9-5039dc494631
 * @创建日期:2013-10-11 15:26:06
 * 
 * @功能描述:ImportantVehicle
 * @开发人员:福建视通 */
@Repository(value="importantVehicleDao")
public class ImportantVehicleDao extends GenericDao<ImportantVehicle> {
   /** @param query 
    * @param pageSize 
    * @param pageNum
    * @pdOid 62240d4a-2789-47e5-8e7b-9475c8460c7e
    * @功能描述: 通过ImportantVehicleQuery对象，查询ImportantVehicle
    * @异常类型: */
   public Page findPage(ImportantVehicleQuery query, int pageSize, int pageNum) {
   	StringBuilder hql=new StringBuilder();
   	hql.append(" from ImportantVehicle ett where 1=1");
   	List param=new ArrayList();
   	if(query!=null){
   		if(!StringUtils.isEmpty(StringUtils.trimToEmpty(query.getId()))){
   			hql.append(" and ett.id=?");
   			param.add(query.getId().trim());
   		}
   		if(!StringUtils.isEmpty(StringUtils.trimToEmpty(query.getPlateNum()))){
   			hql.append(" and ett.plateNum=?");
   			param.add(query.getPlateNum().trim());
   		}
   		if(!StringUtils.isEmpty(StringUtils.trimToEmpty(query.getPlateTypeId()))){
   			hql.append(" and ett.plateTypeId=?");
   			param.add(query.getPlateTypeId().trim());
   		}
   		if(!StringUtils.isEmpty(StringUtils.trimToEmpty(query.getImportantVehicleAuditId()))){
   			hql.append(" and ett.importantVehicleAuditId=?");
   			param.add(query.getImportantVehicleAuditId().trim());
   		}
   		if(query.getEffectiveStartTime()!=null){
   			hql.append(" and ett.effectiveStartTime>=?");
   			param.add(query.getEffectiveStartTime());
   		}
   		if(query.getEffectiveEndTime()!=null){
   			hql.append(" and ett.effectiveEndTime<=?");
   			param.add(query.getEffectiveEndTime());
   		}
   		if(!StringUtils.isEmpty(StringUtils.trimToEmpty(query.getCause()))){
   			hql.append(" and ett.cause=?");
   			param.add(query.getCause().trim());
   		}
   		if(!StringUtils.isEmpty(StringUtils.trimToEmpty(query.getDescription()))){
   			hql.append(" and ett.description=?");
   			param.add(query.getDescription().trim());
   		}
   		if(!StringUtils.isEmpty(StringUtils.trimToEmpty(query.getContact1()))){
   			hql.append(" and ett.contact1=?");
   			param.add(query.getContact1().trim());
   		}
   		if(!StringUtils.isEmpty(StringUtils.trimToEmpty(query.getContactWay1()))){
   			hql.append(" and ett.contactWay1=?");
   			param.add(query.getContactWay1().trim());
   		}
   		if(!StringUtils.isEmpty(StringUtils.trimToEmpty(query.getContact2()))){
   			hql.append(" and ett.contact2=?");
   			param.add(query.getContact2().trim());
   		}
   		if(!StringUtils.isEmpty(StringUtils.trimToEmpty(query.getContactWay2()))){
   			hql.append(" and ett.contactWay2=?");
   			param.add(query.getContactWay2().trim());
   		}
   		if(!StringUtils.isEmpty(StringUtils.trimToEmpty(query.getContact3()))){
   			hql.append(" and ett.contact3=?");
   			param.add(query.getContact3().trim());
   		}
   		if(!StringUtils.isEmpty(StringUtils.trimToEmpty(query.getContactWay3()))){
   			hql.append(" and ett.contactWay3=?");
   			param.add(query.getContactWay3().trim());
   		}
   		if(!StringUtils.isEmpty(StringUtils.trimToEmpty(query.getInsertUserId()))){
   			hql.append(" and ett.insertUserId=?");
   			param.add(query.getInsertUserId().trim());
   		}
   		if(query.getInsertTime()!=null){
   			hql.append(" and ett.insertTime=?");
   			param.add(query.getInsertTime());
   		}
   		if(!StringUtils.isEmpty(StringUtils.trimToEmpty(query.getUpdateUserId()))){
   			hql.append(" and ett.updateUserId=?");
   			param.add(query.getUpdateUserId().trim());
   		}
   		if(query.getUpdateTime()!=null){
   			hql.append(" and ett.updateTime=?");
   			param.add(query.getUpdateTime());
   		}
   		if(!StringUtils.isEmpty(StringUtils.trimToEmpty(query.getVehicleId()))){
   			hql.append(" and ett.vehicleId=?");
   			param.add(query.getVehicleId().trim());
   		}
   	}
   	return this.findByHql(hql.toString(), pageSize, pageNum, param.toArray());
   }
   
   /** @param query
    * @pdOid 7f817989-29b9-4ea4-8c73-db6d42e50bac
    * @功能描述: 通过ImportantVehicleQuery对象，查询ImportantVehicle
    * @异常类型: */
   public List<ImportantVehicle> findList(ImportantVehicleQuery query) {
   	StringBuilder hql=new StringBuilder();
   	hql.append(" from ImportantVehicle ett where 1=1");
   	List param=new ArrayList();
   	if(query!=null){
   		if(!StringUtils.isEmpty(StringUtils.trimToEmpty(query.getId()))){
   			hql.append(" and ett.id=?");
   			param.add(query.getId().trim());
   		}
   		if(!StringUtils.isEmpty(StringUtils.trimToEmpty(query.getImportantVehicleAuditId()))){
   			hql.append(" and ett.importantVehicleAuditId=?");
   			param.add(query.getImportantVehicleAuditId().trim());
   		}
   		if(query.getEffectiveStartTime()!=null){
   			hql.append(" and ett.effectiveStartTime=?");
   			param.add(query.getEffectiveStartTime());
   		}
   		if(query.getEffectiveEndTime()!=null){
   			hql.append(" and ett.effectiveEndTime=?");
   			param.add(query.getEffectiveEndTime());
   		}
   		if(!StringUtils.isEmpty(StringUtils.trimToEmpty(query.getCause()))){
   			hql.append(" and ett.cause=?");
   			param.add(query.getCause().trim());
   		}
   		if(!StringUtils.isEmpty(StringUtils.trimToEmpty(query.getDescription()))){
   			hql.append(" and ett.description=?");
   			param.add(query.getDescription().trim());
   		}
   		if(!StringUtils.isEmpty(StringUtils.trimToEmpty(query.getContact1()))){
   			hql.append(" and ett.contact1=?");
   			param.add(query.getContact1().trim());
   		}
   		if(!StringUtils.isEmpty(StringUtils.trimToEmpty(query.getContactWay1()))){
   			hql.append(" and ett.contactWay1=?");
   			param.add(query.getContactWay1().trim());
   		}
   		if(!StringUtils.isEmpty(StringUtils.trimToEmpty(query.getContact2()))){
   			hql.append(" and ett.contact2=?");
   			param.add(query.getContact2().trim());
   		}
   		if(!StringUtils.isEmpty(StringUtils.trimToEmpty(query.getContactWay2()))){
   			hql.append(" and ett.contactWay2=?");
   			param.add(query.getContactWay2().trim());
   		}
   		if(!StringUtils.isEmpty(StringUtils.trimToEmpty(query.getContact3()))){
   			hql.append(" and ett.contact3=?");
   			param.add(query.getContact3().trim());
   		}
   		if(!StringUtils.isEmpty(StringUtils.trimToEmpty(query.getContactWay3()))){
   			hql.append(" and ett.contactWay3=?");
   			param.add(query.getContactWay3().trim());
   		}
   		if(!StringUtils.isEmpty(StringUtils.trimToEmpty(query.getInsertUserId()))){
   			hql.append(" and ett.insertUserId=?");
   			param.add(query.getInsertUserId().trim());
   		}
   		if(query.getInsertTime()!=null){
   			hql.append(" and ett.insertTime=?");
   			param.add(query.getInsertTime());
   		}
   		if(!StringUtils.isEmpty(StringUtils.trimToEmpty(query.getUpdateUserId()))){
   			hql.append(" and ett.updateUserId=?");
   			param.add(query.getUpdateUserId().trim());
   		}
   		if(query.getUpdateTime()!=null){
   			hql.append(" and ett.updateTime=?");
   			param.add(query.getUpdateTime());
   		}
   		if(!StringUtils.isEmpty(StringUtils.trimToEmpty(query.getVehicleId()))){
   			hql.append(" and ett.vehicleId=?");
   			param.add(query.getVehicleId().trim());
   		}
   	}
   	return this.findFastByHql(hql.toString(), param.toArray());
   }

}